#pragma once

#include  "iostream"
#include  "vector"
#include  "stack"
#include  "unordered_map"
#include   "queue"

using namespace std;


/**
 *给定两个数组 nums1 和 nums2 ，返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。



示例 1：

输入：nums1 = [1,2,2,1], nums2 = [2,2]
输出：[2]
示例 2：

输入：nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出：[9,4]
解释：[4,9] 也是可通过的
 *
 *
 *
 * */

//这道题我思路有问题 我建议明天看一下
vector<int> intersection(vector<int> &nums1, vector<int> &nums2) {

    unordered_set<int> ss(nums1.begin(), nums1.end());
    unordered_set<int> res;
    for (int i = 0; i < nums2.size(); i++) {
        if (ss.find(nums2[i]) != ss.end())
            res.insert(nums2[i]);
    }

    return vector<int>(res.begin(), res.end());

}